# coding=utf-8
# python 基础语法
import keyword

# 查看所有的保留字（python中关键字）
print(keyword.kwlist)
print(len(keyword.kwlist))

# 标识符 __ 特殊标识符

# ---变量和常量（定量）

# 常量 默认常量名大写就是常量
MY_NAME = "人生苦短，我学Python"

# 变量
luck_number = 8

luck_string = "小刘"

print(type(luck_number))
print(type(luck_string))

# 在python中允许多个变量指向同一个值 ， 并使用 id 查看变量的内存地址
one_number = two_number = 99
MY_NAME = "修改了MY_NAME"
print(MY_NAME)
print(one_number, type(one_number), id(one_number))
print(two_number, type(two_number), id(two_number))

# 数据类型
# ---数值类型
# 1. 二进制、八进制、十进制、十六进制
num = 789
num2 = 0B010010
num3 = 0o734
num4 = 0xA232C
print(num)
print(num2)
print(num3)
print(num4)

# 进制之间的转换
print("十进制转换为十六进制", hex(2024))
print("十进制转换为八进制", oct(2024))
print("十进制转换为二进制", bin(2024))

height = 99.9
heighte = 99.78e78121
width = 100
print(height, type(height))
print(heighte, type(heighte))
print(width, type(width))

print(0.1 + 0.2)
print(round(0.1 + 0.2, 2))

# 复数
n = 123 + 456j
print(n, "实数", n.real, "虚数", n.imag)

# ---字符串案例：
# 多行字符串定义
info = """
    小刘
    我是程序
"""
print(info)
# 制表符
print("a\tdadasdas")
# 原字符
print(r'a\thuur')
# 截取
print(MY_NAME[2:5])
# 存在
print("陕西" in "我的陕西人")
print("山西" in "我的陕西人")

# eval 函数的使用 , eval 经常和input函数一起使用，用来获取用户输入的数值
str = "3.14+34"
print(str, type(str))
dstr = eval(str)
print(dstr, type(dstr))

age = eval(input("巴嘎雅楼："))
print(age, type(age))

# 位运算
print(3 << 1)
